#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<string>
#include<vector>
#include <queue>
#include<algorithm>
using namespace std;

int N;
vector<vector<int>> num;
vector<bool> dy;
int ret;
int sum;

void dfs(int i)
{
	if (i == N)
	{
		ret = max(ret, sum);
		return;
	}

	for (int j = 0; j < N; j++)
	{
		if (!dy[j])
		{
			dy[j] = true;
			sum += num[i][j];
			dfs(i + 1);
			//
			dy[j] = false;
			sum -= num[i][j];
		}
	}
}

int main()
{
	while (cin >> N)
	{
		num.assign(N, vector<int>(N));
		// perror("resize");
		dy.assign(N, false);
		// perror("resize");
		ret = 0;
		sum = 0;

		for (int i = 0; i < N; i++)
		{
			for (int j = 0; j < N; j++)
			{
				cin >> num[i][j];
			}
		}

		dfs(0);
		cout << ret << endl;
	}
}